import subprocess
import adduser
import deluser
import viewuser
import daemonsstatus
import daemonsmanagement
import syslogs
import ssh
import tkinter as tk
from tkinter import ttk
from tkinter import *
from tkinter import messagebox
import os

#окно авторизации
def auth():
    def login():
        with open('/root/git/pass', 'r') as file:
            pwd = file.read()
        username = username_entry.get()
        password = password_entry.get()
    
        if username == "admin" and password in pwd:
            messagebox.showinfo("Успешно", "Вход выполнен!")
            auth.destroy()
            menu()
            def execute_command(command):
                result = os.system(command)
                if result != 0:
                     messagebox.showerror("Error", "Command execution failed!")
                else:
                    messagebox.showinfo("Success", "Command executed successfully!")

    auth = Tk()
    auth.title("Авиторизация")


    username_label = Label(auth, text="Логин:")
    username_entry = Entry(auth)

    password_label = Label(auth, text="Пароль:")
    password_entry = Entry(auth, show="*")  # Звездочка скрывает введенный текст

    login_button = Button(auth, text="Войти", command=login)

    username_label.grid(row=0, column=0)
    username_entry.grid(row=0, column=1)

    password_label.grid(row=1, column=0)
    password_entry.grid(row=1, column=1)

    login_button.grid(row=2, column=0, columnspan=2)
def menu():
    #Перезапуск сети
    def restart_network():
        command = "sudo service networking restart"
        execute_command(command)

        #Окно создания пользователя
    def open_add_user_window():
        adduser.main()

        #Окно удаления пользователя
    def open_delete_user_window():
        deluser.main()
        #pass

    def open_edit_user_window():
        # Здесь надо запилить открытие окна редактирования пользователя
        pass

        #Окно просмотра всех существующих пользователей
    def open_view_users_window():
        viewuser.main()
        pass

    def open_syslogs_window():
        # Здесь реализуется открытие окна просмотра журнала
        syslogs.main()
        pass

    def open_settings_window():
        # Здесь реализуется открытие окна настроек
        pass

    def sshc():
            ssh.main()
            pass

        #Просмотр состояния демонов
    def daemon_status():
        daemonsstatus.main()
        pass

        #Управление демонами
    def daemon_management():
        daemonsmanagement.main()
        pass

        #Выход в меню авторизации
    def logout():
        root.destroy()
        auth()
        pass

    root = tk.Tk()
    root.title("Панель администратора")

    # Создание меню
    menu = tk.Menu(root)
    root.config(menu=menu)

    # Создание меню "Опции"
    options_menu = tk.Menu(menu)
    menu.add_cascade(label="Опции", menu=options_menu)
    options_menu.add_command(label="Настройки", command=open_settings_window)
    options_menu.add_separator()
    options_menu.add_command(label="Выйти", command=logout)

    # Создание вкладок
    notebook = ttk.Notebook(root)
    notebook.pack(fill="both", expand=True)

    # Вкладка "Система"
    sys_frame = ttk.Frame(notebook)
    notebook.add(sys_frame, text="Система")

    button_restart_network = ttk.Button(sys_frame, text="Перезапуск сети", command=restart_network)
    button_restart_network.pack(pady=10)

    button_ssh = ttk.Button(sys_frame, text="SSH", command=sshc)
    button_ssh.pack(pady=10)

    button_daemon_status = ttk.Button(sys_frame, text="Состояние демонов", command=daemon_status)
    button_daemon_status.pack(pady=10)

    button_daemon_management = ttk.Button(sys_frame, text="Управление демонами", command=daemon_management)
    button_daemon_management.pack(pady=10)


    # Вкладка "Пользователи"
    users_frame = ttk.Frame(notebook)
    notebook.add(users_frame, text="Пользователи")

    add_user_button = ttk.Button(users_frame, text="Добавить пользователя", command=open_add_user_window)
    add_user_button.pack(pady=10)

    delete_user_button = ttk.Button(users_frame, text="Удалить пользователя", command=open_delete_user_window)
    delete_user_button.pack(pady=10)

    edit_user_button = ttk.Button(users_frame, text="Редактировать пользователя", command=open_edit_user_window)
    edit_user_button.pack(pady=10)

    view_users_button = ttk.Button(users_frame, text="Просмотреть пользователей", command=open_view_users_window)
    view_users_button.pack(pady=10)



    # Вкладка "Журнал"
    logs_frame = ttk.Frame(notebook)
    notebook.add(logs_frame, text="Журнал")

    view_logs_button = ttk.Button(logs_frame, text="Syslogs", command=open_syslogs_window)
    view_logs_button.pack(pady=10)

auth()


